package com.roamer.school.service.sys;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.roamer.school.repository.entity.sys.SysUser;
import com.roamer.school.service.model.sys.UserDTO;

/**
 * 用户 业务层接口
 *
 * @author roamer
 * @version V1.0
 * @date 2018/12/27 15:38
 */
public interface UserService extends IService<SysUser> {


    /**
     * 获取用户信息 by 用户名
     *
     * @param username 用户名
     *
     * @return {@code SysUser} 用户信息
     */
    SysUser findByUsername(String username);

    /**
     * 获取有效用户信息 by 用户名
     *
     * @param username 用户名
     *
     * @return {@code SysUser} 用户信息
     */
    SysUser findEffectiveByUsername(String username);

    /**
     * 用户分页查询
     *
     * @param page 分页参数
     * @param user 查询条件
     *
     * @return {@code IPage<SysUser>}
     */
    IPage<SysUser> findPage(Page<SysUser> page, UserDTO user);

    /**
     * 新增用户
     *
     * @param userDTO 用户信息
     *
     * @return {@code SysUser} 持久化后的用户信息
     */
    SysUser saveUser(UserDTO userDTO);

    /**
     * 修改用户信息
     *
     * @param userDTO 用户信息
     *
     * @return {@code SysUser} 修改后的用户信息
     */
    SysUser updateUser(UserDTO userDTO);
}
